/*
 * @(#)RoleViewDaoImpl.java 创建于 2013年3月20日 
 * 
 * Copyright (c) 2013-2014 by Drow.  
 *
 */
package com.hangxin.basic.dao.impl;

import java.util.List;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;

import com.hangxin.basic.dao.RoleViewDao;
import com.hangxin.basic.model.RoleView;
import com.hangxin.commons.dao.impl.BasicDaoImpl;

/**
 * 
 * 类名称：RoleViewDaoImpl.java
 * <P/>
 * 类描述： 角色菜单操作的DAO接口的实现类
 * <P/>
 * 创建时间：2013年3月20日
 * <P/>
 * 创建人： 李志远
 * <P/>
 * 联系方式： 1726021389@qq.com
 * <P/>
 * 修改人：无
 * <P/>
 * 修改时间：无
 * <P/>
 * 修改备注：无
 * <P/>
 * 版本：v1.0
 * 
 */
@Repository
public class RoleViewDaoImpl extends BasicDaoImpl implements RoleViewDao
{
	private static final Logger logger = LoggerFactory.getLogger(RoleViewDaoImpl.class);



	/**
	 * 
	 * 功能描述：根据角色id查询菜单数据列表
	 * <P/>
	 * 创建时间：2013年3月20日
	 * <P/>
	 * 创建人： 李志远
	 * <P/>
	 * 联系方式： 1726021389@qq.com
	 * 
	 * @param args0
	 * @return
	 */
	@Override
	public List<Map<String, Object>> selectListByRoleId(RoleView args0)
	{
		String sql = "select * from viewinfo where id in(select roleview.viewid from roleview where roleid in(?))";
		Object[] params = new Object[] { args0.getId() };
		List<Map<String, Object>> listMenu = null;
		try
		{
			listMenu = this.findMap(sql, params);
		} catch (Exception e)
		{
			e.printStackTrace();
			logger.error("RoleViewDaoImpl中selectListByRoleId根据角色编号查询出菜单---出现错误");
		}

		return listMenu;
	}



	/**
	 * 
	 * 功能描述：查询所有的菜单数据列表
	 * <P/>
	 * 创建时间：2013年3月20日
	 * <P/>
	 * 创建人： 李志远
	 * <P/>
	 * 联系方式： 1726021389@qq.com
	 * 
	 * @param args0
	 * @return
	 */
	@Override
	public List<Map<String, Object>> selectList()
	{
		String sql = "select * from viewinfo";
		List<Map<String, Object>> listMenu = null;
		try
		{
			listMenu = this.findMap(sql);
		} catch (Exception e)
		{
			e.printStackTrace();
			logger.error("RoleViewDaoImpl中selectList查询出菜单---出现错误");
		}

		return listMenu;
	}



	/**
	 * 
	 * 功能描述：插入角色与菜单
	 * <P/>
	 * 创建时间：2013年3月20日
	 * <P/>
	 * 创建人： 李志远
	 * <P/>
	 * 联系方式： 1726021389@qq.com
	 * 
	 * @param args0
	 * @param args1
	 * @return
	 */
	public Integer insertDb(String args0, Long args1)
	{
		String sql = "insert into roleview(roleid,viewid) values(?,?)";
		Object[] params = new Object[] { args1, args0 };
		return this.save(sql, params);
	}



	/**
	 * 
	 * 功能描述：判断用户名和密码是否存在
	 * <P/>
	 * 创建时间：2013年3月20日
	 * <P/>
	 * 创建人： 李志远
	 * <P/>
	 * 联系方式： 1726021389@qq.com
	 * 
	 * @param args0
	 *            viewid菜单id
	 * @param args1
	 *            roleid角色id
	 * @return
	 */
	@Override
	public Integer ifExist(String args0, Long args1)
	{
		String sql = "select count(*) from roleview where roleid=? and viewid=?";
		Object[] params = new Object[] { args1, args0 };
		return this.findByCount(sql, params);
	}



	/**
	 * 
	 * 功能描述：删除一条角色菜单
	 * <P/>
	 * 创建时间：2013年3月20日
	 * <P/>
	 * 创建人： 李志远
	 * <P/>
	 * 联系方式： 1726021389@qq.com
	 * 
	 * @param args0
	 *            viewid菜单id
	 * @param args1
	 *            roleid角色id
	 * @return
	 */
	@Override
	public Integer deleteDb(String args0, Long args1)
	{
		String sql = "delete from roleview where roleid=? and viewid=?";
		Object[] params = new Object[] { args1, args0 };
		return this.delete(sql, params);
	}



	/**
	 * 
	 * 功能描述：根据角色id删除菜单
	 * <P/>
	 * 创建时间：2013年3月20日
	 * <P/>
	 * 创建人： 李志远
	 * <P/>
	 * 联系方式： 1726021389@qq.com
	 * 
	 * @param args0
	 *            roleid角色id
	 * @return
	 */
	@Override
	public Integer deleteMenu(Long args0)
	{
		String sql = "delete from roleview where roleid=?";
		Object[] params = new Object[] { args0 };
		return this.delete(sql, params);
	}



	/**
	 * 
	 * 功能描述：根据角色id判断角色菜单是否存在
	 * <P/>
	 * 创建时间：2013年3月21日
	 * <P/>
	 * 创建人： 李志远
	 * <P/>
	 * 联系方式： 1726021389@qq.com
	 * 
	 * @param args0
	 *            roleid角色id
	 * @return
	 */
	@Override
	public Integer ifExist(Long args0)
	{
		String sql = "select count(*) from roleview where roleid=?";
		Object[] params = new Object[] { args0 };
		return this.findByCount(sql, params);
	}

}
